package com.wyh.domain.po.groupOne.resource;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("resource")
public class MasterDataResource implements Serializable {
    @NotNull(message = "[]不能为空")
    @ApiModelProperty(value = "资源id（修改接口是必须传id，新增不需要）", required = true)
    private Integer id;
    /**
     * 资源类型，0房屋、1车位
     */
    @ApiModelProperty(value = "资源类型，0房屋、1车位(条件查询时，这个必传，这是四个之一)", required = true)
    @NotNull
    private Integer type;
    /**
     * 资源编号
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty(value = "资源编号(条件查询时，这个必传，这是四个之一)", required = true)
    @Length(max = 255, message = "编码长度不能超过255")
    @NotNull
    private String number;
    /**
     * 虚拟资源，0是、1否
     */
    @ApiModelProperty(value = "虚拟资源，0是、1否", required = true)
    @NotNull
    private Integer isvirtual;
    /**
     * 套内面积
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty(value = "套内面积", required = true)
    @Length(max = 255, message = "编码长度不能超过255")
    @Pattern(regexp = "^\\d+(\\.\\d{1,2})?$", message = "套内面积只能是数字，小数点后最多保留两位")
    @NotNull
    private Double insidearea;
    /**
     * 所属楼栋id
     */
    @NotBlank(message = "[所属楼栋id]不能为空")
    @ApiModelProperty(value = "所属楼栋id", required = true)
    @NotNull
    private Integer buildingid;

    /**
     * 资源名称
     */
    @Size(max = 20, message = "编码长度不能超过20")
    @ApiModelProperty(value = "资源名称(条件查询时，这个必传，这是四个之一)", required = true)
    @Length(max = 20, message = "编码长度不能超过20")
    @NotNull
    private String name;
    /**
     * 建筑面积
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty(value = "建筑面积", required = true)
    @Length(max = 255, message = "编码长度不能超过255")
    @Pattern(regexp = "^\\d+(\\.\\d{1,2})?$", message = "建筑面积只能是数字，小数点后最多保留两位")
    @NotNull
    private Double buildingarea;
    /**
     * 容量值
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty(value = "容量值", required = true)
    @Length(max = 255, message = "编码长度不能超过255")
    private Double capacity;
    /**
     * 资源状态，0未接房、1空闲、2已出租、3失效
     */
    @ApiModelProperty(value = "资源状态，0未接房、1空闲、2已出租、3失效(条件查询时，这个必传，这是四个之一,其他接口不传这个参数)", required = true)
    private Integer state;
    /**
     * 完整的资源名称
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("完整的资源名称")
    @Length(max = 255, message = "编码长度不能超过255")
    @NotNull
    private String infoname;

    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("最后的修改人")
    @Length(max = 255, message = "编码长度不能超过255")
    private String modifier;

    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("最后的修改时间")
    @Length(max = 255, message = "编码长度不能超过255")
    private Date changeTime;


    /**
     * 树的子节点
     */
    @ApiModelProperty("树的子节点")
    private List<MasterDataResource> masterDataResourceChildren;

    @ApiModelProperty(value = "页码" ,required = true)
    private Integer pageNum;
    @ApiModelProperty(value = "页数",required = true)
    private Integer pageSize;

}
